#include "quitwindow.h"
#include "ylib.h"

#include <stdio.h>

#define MAX_BTN_COUNT     2 
#define BTN_POS_Y        (480/2)
#define BTN_WIDTH       100
#define BTN_HEIGHT      100
#define BTN_PIXELS       18
#define BTN_YES_POS_X   (800/2 - BTN_WIDTH - 50)
#define BTN_NO_POS_X    (BTN_YES_POS_X + BTN_WIDTH + 100)
#define HINT_WIDTH      600
#define HINT_HEIGHT     100
#define HINT_POS_Y      (480/2 - HINT_HEIGHT - 50)
#define HINT_POS_X      ((800-HINT_WIDTH)/2)
#define HINT_FONT_PIXELS    50

static GraphRect __btns[MAX_BTN_COUNT];
static font *__fp = NULL;
static bitmap *__bmap = NULL;


// 绘制提示
static void __draw_hint();

// 绘制按钮
static void __draw_btns();

// 初始化 退出界面
void init_quitwindow()
{
    // 打开文字
    __fp = fontLoad("../font/simfang.ttf");
    if (__fp == NULL){
        fprintf(stderr, "__fp==NULL file:%s %d ", __FILE__, __LINE__);
    }

    // bitmap 画布
    __bmap = createBitmapWithInit(HINT_WIDTH, HINT_HEIGHT, 3, 0xffffff<<8);

    // 字体大小
    fontSetSize(__fp, HINT_FONT_PIXELS);

    // 写入 字符串
    fontPrint(__fp, __bmap, 0, 0, "确认退出图片浏览器？", 0x0, 0);

}

// 绘制 退出界面
void draw_quitwindow()
{
    // 清屏
    clear_lcd(0xffffff);

    // 绘制提示
    __draw_hint();

    // 绘制按钮
    __draw_btns();
}

// 检查按钮
int check_btn_QW(int x, int y)
{
    for (int i=0; i<MAX_BTN_COUNT; ++i){
        if ((__btns[i].x <= x && __btns[i].x+__btns[i].width >= x) && (__btns[i].y <= y && __btns[i].y+__btns[i].height >= y)){
            return i;
        }
    }
    return QWNot;
}

// 销毁  退出界面
void destroy_quitwindow()
{
    fontUnload(__fp);
    destroyBitmap(__bmap);
}

// 绘制提示
static void __draw_hint()
{
    // 把文字提示 打印到 lcd
    draw_graph(__bmap->map, HINT_POS_X, HINT_POS_Y, __bmap->width, __bmap->height, __bmap->byteperpixel, false);
}

// 绘制按钮
static void __draw_btns()
{
    // 绘制 确认按钮
    __btns[0] = create_Btn(BTN_YES_POS_X, BTN_POS_Y, BTN_WIDTH, BTN_HEIGHT, __fp, BTN_PIXELS, 0xffffff, 0x0, "确认退出");

    // 绘制 取消按钮
    __btns[1] = create_Btn(BTN_NO_POS_X, BTN_POS_Y, BTN_WIDTH, BTN_HEIGHT, __fp, BTN_PIXELS, 0xffffff, 0x0, "取消退出");
}